home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.beaninfo;
-
- import java.awt.Image;
- import java.beans.BeanDescriptor;
- import java.beans.BeanInfo;
- import java.beans.FeatureDescriptor;
- import java.beans.IndexedPropertyDescriptor;
- import java.beans.IntrospectionException;
- import java.beans.Introspector;
- import java.beans.PropertyDescriptor;
- import java.beans.SimpleBeanInfo;
- import java.lang.reflect.Method;
-
- public abstract class SwingBeanInfo extends SimpleBeanInfo {
- public static final String BOUND = "bound";
- public static final String CONSTRAINED = "constrained";
- public static final String PROPERTYEDITORCLASS = "propertyEditorClass";
- public static final String READMETHOD = "readMethod";
- public static final String WRITEMETHOD = "writeMethod";
- public static final String DISPLAYNAME = "displayName";
- public static final String EXPERT = "expert";
- public static final String HIDDEN = "hidden";
- public static final String PREFERRED = "preferred";
- public static final String SHORTDESCRIPTION = "shortDescription";
- public static final String CUSTOMIZERCLASS = "customizerClass";
-
- private static String capitalize(String var0) {
- if (var0.length() == 0) {
- return var0;
- } else {
- char[] var1 = var0.toCharArray();
- var1[0] = Character.toUpperCase(var1[0]);
- return new String(var1);
- }
- }
-
- public BeanDescriptor createBeanDescriptor(Class var1, Object[] var2) {
- Class var3 = null;
-
- for(int var4 = 0; var4 < var2.length; var4 += 2) {
- if ("customizerClass".equals((String)var2[var4])) {
- var3 = (Class)var2[var4 + 1];
- break;
- }
- }
-
- BeanDescriptor var5 = new BeanDescriptor(var1, var3);
-
- for(int var6 = 0; var6 < var2.length; var6 += 2) {
- String var7 = (String)var2[var6];
- Object var8 = var2[var6 + 1];
- this.initFeatureDescriptor(var5, var7, var8);
- }
-
- return var5;
- }
-
- public PropertyDescriptor createPropertyDescriptor(Class var1, String var2, Object[] var3) {
- PropertyDescriptor var4 = null;
-
- try {
- var4 = new PropertyDescriptor(var2, var1);
- } catch (IntrospectionException var14) {
- try {
- var4 = this.createReadOnlyPropertyDescriptor(var2, var1);
- } catch (IntrospectionException var13) {
- this.throwError(var13, "Can't create PropertyDescriptor for " + var2 + " ");
- }
- }
-
- for(int var5 = 0; var5 < var3.length; var5 += 2) {
- String var6 = (String)var3[var5];
- Object var7 = var3[var5 + 1];
- if ("bound".equals(var6)) {
- var4.setBound((Boolean)var7);
- } else if ("constrained".equals(var6)) {
- var4.setConstrained((Boolean)var7);
- } else if ("propertyEditorClass".equals(var6)) {
- var4.setPropertyEditorClass((Class)var7);
- } else if ("readMethod".equals(var6)) {
- String var8 = (String)var7;
-
- try {
- var1.getMethod(var8);
- } catch (Exception var12) {
- this.throwError(var12, String.valueOf(var1) + " no such method as \"" + var8 + "\"");
- }
- } else if ("writeMethod".equals(var6)) {
- String var15 = (String)var7;
-
- try {
- Class var10 = var4.getPropertyType();
- var1.getMethod(var15, var10);
- } catch (Exception var11) {
- this.throwError(var11, String.valueOf(var1) + " no such method as \"" + var15 + "\"");
- }
- } else {
- this.initFeatureDescriptor(var4, var6, var7);
- }
- }
-
- return var4;
- }
-
- private PropertyDescriptor createReadOnlyPropertyDescriptor(String var1, Class var2) throws IntrospectionException {
- Method var3 = null;
- String var4 = capitalize(var1);
- Class[] var5 = new Class[0];
-
- try {
- var3 = var2.getMethod("is" + var4, var5);
- } catch (Exception var8) {
- }
-
- if (var3 == null) {
- try {
- var3 = var2.getMethod("get" + var4, var5);
- } catch (Exception var7) {
- }
- }
-
- if (var3 != null) {
- return new PropertyDescriptor(var1, var3, (Method)null);
- } else {
- try {
- var5 = new Class[]{Integer.TYPE};
- var3 = var2.getMethod("get" + var4, var5);
- } catch (NoSuchMethodException var6) {
- throw new IntrospectionException("cannot find accessor method for " + var1 + " property.");
- }
-
- return new IndexedPropertyDescriptor(var1, (Method)null, (Method)null, var3, (Method)null);
- }
- }
-
- public BeanInfo[] getAdditionalBeanInfo() {
- Class var1 = ((SimpleBeanInfo)this).getBeanDescriptor().getBeanClass().getSuperclass();
- BeanInfo var2 = null;
-
- try {
- var2 = Introspector.getBeanInfo(var1);
- } catch (IntrospectionException var4) {
- }
-
- if (var2 != null) {
- BeanInfo[] var3 = new BeanInfo[]{var2};
- return var3;
- } else {
- return null;
- }
- }
-
- public int getDefaultPropertyIndex() {
- return 0;
- }
-
- public Image getIcon(int var1) {
- return null;
- }
-
- private void initFeatureDescriptor(FeatureDescriptor var1, String var2, Object var3) {
- if ("displayName".equals(var2)) {
- var1.setDisplayName((String)var3);
- }
-
- if ("expert".equals(var2)) {
- var1.setExpert((Boolean)var3);
- }
-
- if ("hidden".equals(var2)) {
- var1.setHidden((Boolean)var3);
- }
-
- if ("preferred".equals(var2)) {
- if ("preferred".equals(var2)) {
- var1.setValue(var2, var3);
- }
- } else if ("shortDescription".equals(var2)) {
- var1.setShortDescription((String)var3);
- } else {
- var1.setValue(var2, var3);
- }
-
- }
-
- protected void throwError(Exception var1, String var2) {
- throw new Error(((Throwable)var1).toString() + " " + var2);
- }
- }
-